#include <iostream>
using namespace std;
void test0(){
    //new底层时malloc
    //类型后面有（）会给默认值 ，没有 （）不能完全保证给默认值
    int *num = new int(4);
    delete num;
    char *cha = new char();
    delete cha;
    //   int arr[5]= new num[5]();  错误 记住左边是只有类型 没有定义的名
 //   new 左边 必须是指针
    int *arr =new int[5]();
    delete [] arr;
    int *arr1 = new int [5]{1,2,3};
    for(int i=0;i<5;i++){
        cout<<arr1[i]<<endl;
    
    }
    delete [] arr1;

    //下面定义不一定正确 ，一般来说需要在大括号内 给一个一个字符
    //而不是直接给一个字符串。
    char * str = new char[10]{"hello"};
    char *str1 = new char[10]{'1','2','3','4'};
    cout<<"str:"<<str<<"  str1:"<<str1<<endl;
    delete [] str;
    delete [] str1;
}

int main()
{
    test0();
    std::cout << "Hello world" << std::endl;
    return 0;
}

